This invention relates generally to information systems and, more particularly, to Quality of Service (QoS) management in information systems that include multiple middleware environments.
QoS management may be implemented in a networked information management system to optimize the use of system resources by a plurality of concurrent network applications. Units of work in information management systems generally can be considered as either tasks or messages. In an object-oriented system, a primitive task may be, for example, a thread of execution of an object. Messages typically are encapsulations of information of various types. Systems tend to be task-oriented or message oriented. Accordingly, known QoS management methods tend to be either task-oriented or message-oriented.
Although QoS management concepts and frameworks for task-oriented systems and message-oriented systems may be similar, actual implementation techniques tend to be quite different. In task-oriented systems, QoS management techniques typically focus on prioritizing task executions to meet application QoS requirements. In message-oriented systems, QoS management techniques typically focus on quality of message reception, processing, and delivery. Meanings of quality characteristics such as performance and reliability can be slightly different from those in task-oriented systems. For example, message reliability typically means a combination of delivery guarantees, ordering of messages, and duplicate removals. Task reliability, on the other hand, typically means a probability that a task can be successfully executed without failure.
QoS management is currently used in task-oriented systems to support computational applications for getting high priority tasks done in a timely manner in distributed environments. However, QoS management for message-oriented information management systems has not been given as much attention. Such systems include information management systems in which service-oriented architectures (SOAs) are implemented. SOAs may be, for example, publish/subscribe, object request broker, peer-to-peer architectures or combinations thereof.
In a publish/subscribe architecture, an information broker provides services to client applications of a system. Information brokers play a central role in information publication, processing, and dissemination in distributed information management systems and network centric military systems. Examples of brokered systems include email, information sphere, collaboration, virtual community, and group communication. It can be difficult in a brokered system to meet requirements of critical clients when many concurrent clients and their requests compete for system resources. Known resource management methods for information brokers may not distinguish between clients with different QoS characteristics so that system resources, even across multiple middleware domains, might be managed accordingly.